package com.yupi.springbootinit.utils;

import org.apache.commons.lang3.time.FastDateFormat;

import java.util.Date;

/**
 * @ClassName: com.xinmei.psm2.common.util.DateFormatUtils
 * @Description: 时间解析类
 * @author gdw
 * @date 2017年2月23日 下午2:59:25
 */
public abstract class DateParseUtils {
	/**
	 * @Title: parseyyyy_MM_dd
	 * @Description: 解析yyyy-MM-dd格式的时间
	 * @param date 时间
	 * @return Date 解析后的时间
	 */
	public static Date parseyyyy_MM_dd(String date)  {
		return parseDate(DateFormatCST.yyyy_MM_dd, date);
	}

	/**
	 * @Title: parseyyyy_MM_dd_HH_mm_ss
	 * @Description: 解析yyyy-MM-dd HH:mm:ss格式的时间
	 * @param date 时间
	 * @return Date 解析后的时间
	 */
	public static Date parseyyyy_MM_dd_HH_mm_ss(String date){
		return parseDate(DateFormatCST.YYYY_MM_DD_HH_MM_SS, date);
	}

	public static Date parseyyyyMMddHHmmss(String date) {
		return parseDate(DateFormatCST.yyyyMMddHHmmss, date);
	}
		
	public static Date parseyyyy_MM(String date) {
		return parseDate(DateFormatCST.yyyy_MM, date);
	}

	public static Date parseyyyyMM_no_Separate(String date) {
		return parseDate(DateFormatCST.yyyyMM, date);
	}
	
	public static Date parseyyyy_MM_dd_no_Separate(String date) {
		return parseDate(DateFormatCST.yyyyMMdd, date);
	}	
	
	private static Date parseDate(FastDateFormat fastDateFormat, String date) {
		try {
			return fastDateFormat.parse(date);
		} catch (Exception e) {
			throw new RuntimeException("时间[" + date + "]解析异常", e);
		}
	}
}